package course.examples.maps.earthquakemap; import java.io.IOException; import java.util.ArrayList; import java.util.List; import org.apache.http.HttpResponse; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.ResponseHandler; import org.apache.http.impl.client.BasicResponseHandler; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import org.json.JSONTokener; public class JSONResponseHandler implements ResponseHandler<List<EarthQuakeRec>> { @Override public List<EarthQuakeRec> handleResponse(HttpResponse response) throws ClientProtocolException, IOException { List<EarthQuakeRec> result = new ArrayList<EarthQuakeRec>(); String JSONResponse = new BasicResponseHandler() .handleResponse(response); try { JSONObject object = (JSONObject) new JSONTokener(JSONResponse) .nextValue(); JSONArray earthquakes = object.getJSONArray("earthquakes"); for (int i = 0; i < earthquakes.length(); i++) { JSONObject tmp = (JSONObject) earthquakes.get(i); result.add(new EarthQuakeRec( tmp.getDouble("lat"), tmp.getDouble("lng"), tmp.getDouble("magnitude"))); } } catch (JSONException e) { e.printStackTrace(); } return result; } }